草庐IT

java - 优化 DOM 和 XPath Java 代码

全部标签

javascript - 如何动态执行/评估包含 ES6 模块/需要某些依赖项的 JavaScript 代码?

我希望我的用户能够在我的JavaScript应用程序中使用JavaScript作为脚本语言。为此,我需要动态执行源代码。动态执行JavaScript似乎有两个主要选项:a)使用eval(...)方法(或varfunc=newFunction(...);)。b)添加节点到DOM(例如使用$('body').append(...))。只要我不使用任何import,这两种方法都可以正常工作动态执行的源代码中的语句。如果我包括import语句我收到错误消息Unexpectedidentifier.要执行的示例用户源代码:importAtomfrom'./src/core.atom.js':wi

Javascript 代码块作为函数的参数

鉴于这段代码(我得到的一个React组件的简化):constmyFn=function({otherFn=()=>{console.log('insidemyFndeclaration');return'true'}}){console.log('InsidemyFn2',otherFn());foo(otherFn);bar(otherFn);...}myFn({name:'somename',type:'sometype'});//output://insidemyFndeclaration//InsidemyFn2true我不明白那里发生了什么。这是什么构造?我指的是“myFn(

javascript - Glimmer VM 与虚拟 dom 有何不同?

所以我最近开始研究emberjs,尤其是它的glimmer渲染引擎,并试图了解它是如何工作的。所以我的理解是,GlimmerVM是一个模拟实际DOM并执行功能以对其进行更新的虚拟机。虽然vdom维护DOM状态的内部表示,但glimmerVM没有这样的状态,相反,它执行两组线性指令-一组执行模板的初始渲染,第二组对元素进行更新。这种方法的主要好处是这样我们可以完全绕过JS的解析/编译瓶颈,只需将二进制文件发送到客户端,然后由glimmervm执行。我做对了吗? 最佳答案 如果只是将模板的语言从JS或文本更改为二进制字节码,Glimme

javascript - 放置 Javascript 片段以在呈现之前更改页面的 DOM 的最佳位置在哪里

我有几个动态页面,我想在页面完全呈现之前更改某些元素。我的代码片段是这样的:document.body.getElementById("change").innerHTML="我无权更改内容服务器端。将代码片段放置在何处以使其在呈现页面之前运行代码的最佳位置?相反,将Javascript放在HEAD中(在window.onload事件中?)或在结束BODY之前(不在事件监听器中)是最优的吗? 最佳答案 恐怕您不太可能在页面呈现之前执行您的脚本。当然,您可以放置​​一个内联脚本并让它在您希望它显示内容的地方使用document.wri

javascript - 检测/拦截 <img> 插入 DOM

我们使用的是这家分析公司提供的第三方分析报告脚本。它将1x1像素的图像添加到DOM中,并在图像的URL中报告数据。我有什么办法可以监控DOM并拦截这个元素并在浏览器请求图像之前更改其“src”属性?我知道这听起来很奇怪,但我们想在这个报告脚本中加入一个功能(脚本被混淆了)。 最佳答案 在非IE浏览器中,您可以使用DOMNodeInserted事件检测DOM节点的插入。我不知道浏览器是否会在触发事件时发出HTTP请求;从快速测试来看,它似乎不在Firefox中。由于这在IE中不起作用,因此无论如何这都不是可接受的解决方案。docume

javascript - javascript中的代码重复

是否有任何工具可以检测JavaScript中的代码重复?我试过“PMD重复代码检测器”,但它不支持.js扩展。 最佳答案 我会推荐JSCPD安装npminstall-gjscpd运行jscpd./path/to/code(你有几种类型的记者,默认是控制台,但你可以像这样使用html:jscpd-rhtml./path/to/code)其他解决方案:JSinspect对我不利,因为它不支持.ts和.tsx(jscpd支持150+formatsInteliJIDE(我是它们的super粉丝)似乎无法工作,因为WebStorm没有发现重复

javascript - 单击在不同输入上启动 focusout 事件的 DOM 问题

我有一个与focusout事件处理程序我有一个使用点击事件处理程序Focusout检查输入框的格式是否正确。它通过根据正则表达式测试输入值来实现。如果失败,它会显示一条消息(一段时间后div淡入淡出)并通过调用重新聚焦我的输入window.setTimout(function(){$(this).focus();},10);因为我无法重新聚焦focusout事件处理程序。focusout事件也不能取消。仅供引用。Click从输入元素收集数据并使用Ajax发送。问题当用户TABs浏览表单时一切正常。当某个输入框的格式检查失败时,它会在用户按下TAB后立即重新聚焦。但是当用户不使用TAB而

javascript - 执行通过 DOM 插入加载的 javascript

我正在研究将小部件添加到客户站点的东西,并且我想异步加载我的js,以免阻止客户的页面加载。我一直在阅读很多关于此的主题,并且一直在尝试实现此处建议的模式,因为我的项目非常相似:http://friendlybit.com/js/lazy-loading-asyncronous-javascript我遇到的问题是我动态加载的javascript文件中的代码没有被执行。抱歉,如果这似乎是一个重复的问题,但我已经花了几个小时搜索和尝试略有不同的技术,并且我已经阅读了许多帖子,包括这些stackoverflow问题:Loadjavascriptasync,thencheckDOMloadedb

javascript - Uncaught Error NOT_FOUND_ERR DOM 异常 8

所以我删除了特定div下的所有内容并添加了消息内容。但是,javascript在完成后抛出以下错误:UncaughtError:NOT_FOUND_ERR:DOMException8这是执行代码newAjax.Request("profileThis.php",{method:'post',parameters:{title:title,review:review,userId:userId,category:category,categoryId:categoryId},onSuccess:function(ajax){alert(ajax.responseText);//thisi

javascript - 为什么 jquery 链接回调中的 'this' 是 DOM 元素?

所以我知道在使用$.fn.each、$.fn.bind等时,它是this的标准jQuery中的关键字将回调链接为DOM元素。我知道至少在我的开发中我通常希望DOM元素包装在一个jQuery集合中——90%的时间我最终都在做var$this=$(this)。我确信他们选择绑定(bind)到未包装的元素有一个很好的(可能是基于性能的)理由,但有人知道它到底是什么吗?这是我觉得知道答案的事情之一,可能会为更深层次地理解图书馆和语言打开大门。 最佳答案 Iamsuretherewasagood(likelyperformance-based